/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.brain.conf.dto;

import com.brain.core.dto.*;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.TableGenerator;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
import javax.validation.constraints.Size;

/**
 *
 * @author Ronald
 */
@Entity
@Table(name = "TCONF_CONDICION_PAGO")
public class CondicionPagoDto extends ComunDto implements Serializable {
    private static final long serialVersionUID = 1L;
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Id
    @GeneratedValue(strategy = GenerationType.TABLE, generator = "SEQ_TCONF_CONDICION_PAGO")
    @TableGenerator(name = "SEQ_TCONF_CONDICION_PAGO", table = "TCORE_ENTIDAD", pkColumnName = "NOMBRE", valueColumnName = "CORRELATIVO", pkColumnValue = "TCONF_CONDICION_PAGO", allocationSize = 1)
    private Long id;
    
    @Column(name = "ESTADO")
    private Boolean estado;
    
    @Size(max = 200)
    @Column(name = "DESCRIPCION")
    private String descripcion;
    
    @Column(name = "FECHA_FIJA_PAGO")
    private Boolean fechaFijaPago;
    
    @Column(name = "EN_DIA_LABORAL")
    private Boolean enDiaLaboral;
    
    @Column(name = "POR_DEFECTO")
    private Boolean porDefecto;
    
    @Column(name = "DIA_VENCIMIENTO_1")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaVencimiento1;
    
    @Column(name = "DIA_VENCIMIENTO_2")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaVencimiento2;
        
    @Column(name = "DIA_VENCIMIENTO_3")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fechaVencimiento3;
    
    @Column(name = "PLAZO_MESES")
    private Long plazoMeses;
    
    @Column(name = "PLAZO_DIAS")
    private Long plazoDias;

    
    @JoinColumn(name = "EMPRESA", referencedColumnName = "ID")
    @ManyToOne
    private EmpresaDto  empresaDto;
    
    @Transient
    private Boolean seleccionadoTercero;
    
    @Transient
    private String fechaFijaPagoTexto;
    
    @Transient
    private String enDiaLaboralTexto;
    
    @Transient
    private String porDefectoTexto;
      

    public CondicionPagoDto() {
    }

    public CondicionPagoDto(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Boolean getEstado() {
        return estado;
    }

    public void setEstado(Boolean estado) {
        this.estado = estado;
    }

    public Boolean getFechaFijaPago() {
        return fechaFijaPago;
    }

    public void setFechaFijaPago(Boolean fechaFijaPago) {
        this.fechaFijaPago = fechaFijaPago;
    }

    public Boolean getEnDiaLaboral() {
        return enDiaLaboral;
    }

    public void setEnDiaLaboral(Boolean enDiaLaboral) {
        this.enDiaLaboral = enDiaLaboral;
    }

    public Boolean getPorDefecto() {
        return porDefecto;
    }

    public void setPorDefecto(Boolean porDefecto) {
        this.porDefecto = porDefecto;
    }

    public Date getFechaVencimiento1() {
        return fechaVencimiento1;
    }

    public void setFechaVencimiento1(Date fechaVencimiento1) {
        this.fechaVencimiento1 = fechaVencimiento1;
    }

    public Date getFechaVencimiento2() {
        return fechaVencimiento2;
    }

    public void setFechaVencimiento2(Date fechaVencimiento2) {
        this.fechaVencimiento2 = fechaVencimiento2;
    }

    public Date getFechaVencimiento3() {
        return fechaVencimiento3;
    }

    public void setFechaVencimiento3(Date fechaVencimiento3) {
        this.fechaVencimiento3 = fechaVencimiento3;
    }

    public Long getPlazoMeses() {
        return plazoMeses;
    }

    public void setPlazoMeses(Long plazoMeses) {
        this.plazoMeses = plazoMeses;
    }

    public Long getPlazoDias() {
        return plazoDias;
    }

    public void setPlazoDias(Long plazoDias) {
        this.plazoDias = plazoDias;
    }

    public EmpresaDto getEmpresaDto() {
        return empresaDto;
    }

    public void setEmpresaDto(EmpresaDto empresaDto) {
        this.empresaDto = empresaDto;
    }

    public Boolean getSeleccionadoTercero() {
        return seleccionadoTercero;
    }

    public void setSeleccionadoTercero(Boolean seleccionadoTercero) {
        this.seleccionadoTercero = seleccionadoTercero;
    }

    public String getFechaFijaPagoTexto() {
        return (this.fechaFijaPago == Boolean.TRUE ? "SI" : "NO");
    }

    public void setFechaFijaPagoTexto(String fechaFijaPagoTexto) {
        this.fechaFijaPagoTexto = fechaFijaPagoTexto;
    }

    public String getEnDiaLaboralTexto() {
        return (this.enDiaLaboral == Boolean.TRUE ? "SI" : "NO");
    }

    public void setEnDiaLaboralTexto(String enDiaLaboralTexto) {
        this.enDiaLaboralTexto = enDiaLaboralTexto;
    }

    public String getPorDefectoTexto() {
        return (this.porDefecto == Boolean.TRUE ? "SI" : "NO");
    }

    public void setPorDefectoTexto(String porDefectoTexto) {
        this.porDefectoTexto = porDefectoTexto;
    }

    public String getDescripcion() {
        return descripcion;
    }

    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }


    
    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof CondicionPagoDto)) {
            return false;
        }
        CondicionPagoDto other = (CondicionPagoDto) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "com.brain.conf.dto.CondicionPagoDto[ id=" + id + " ]";
    }
    
}
